Dalam Ruby, kode bukan sekadar skrip statis—ia adalah sistem hidup. Introspeksi adalah kekuatan super yang memungkinkan objek memiliki 'pengetahuan diri', mengubah mereka dari kotak hitam menjadi peta pencarian fungsionalitas. Bahkan nilai langsung seperti bilangan bulat dapat ditanya tentang asal-usul dan kemampuannya saat runtime.
1. Antarmuka Hidup
Dengan memanggil obj.methods(regular=true), kita dapat mengakses seluruh kosa kata fungsional objek. Objek Range sederhana (r = 1..10) mengungkapkan jumlah metode yang menakjubkan sebanyak 68 metode berbeda, yang mencerminkan warisan kaya dari Object dan Enumerable mix-in.
2. Penemuan Dinamis
Metode respond_to? berfungsi sebagai penjaga runtime, memungkinkan Duck Typing. Alih-alih bertanya 'Apa kamu?', kita bertanya 'Bisakah kamu melakukan ini?'. Fleksibilitas ini memungkinkan program menyesuaikan diri berdasarkan kemampuan aktual, seperti memeriksa apakah sebuah string merespons simbol serupa penugasan (=) atau apakah nilai numerik mendukung query hierarki tertentu, Query Hierarki.
3. Jembatan Meta-Dokumentasi
Alat seperti RDoc menggunakan fitur-fitur ini untuk menghasilkan tata letak daftar alfabetis dan diagram blok tanda tangan metode secara otomatis. Dengan memeriksa konstanta modul dan Variabel Instans, para pengembang dapat menjelajahi struktur namespace secara programatik, menutup celah antara file sumber dan eksekusi aktif.